High compression gain for video sequences can be achieved by removing the temporal redundancy across frames. To encode a current frame, the frame is first predicted based on a previously coded “reference” frame, and only the prediction error is encoded. Block-based motion estimation and compensation has been a popular method for temporal prediction, and is widely used. As illustrated in FIG. 1, its basic idea is to find a similar counterpart block in the reference frame 101 to predict a target block in the current frame 103, and therefore only the prediction residual of the target block needs to be coded.
Traditional methods to achieve accurate temporal prediction is to use sub-pixel motion search, which leads to large amount of motion vector overhead. In addition, it can not provide arbitrary sub-pixel resolution, but instead only pre-determined sub-pixel resolutions, e.g. ½, ¼, or ⅛, can be obtained. However, in reality, the object in the picture may have a movement at an arbitrary sub-pixel resolution, which cannot be estimated from the traditional pure motion compensation method. To achieve fine motion resolution with pure motion compensation, it costs more bits to represent each motion vectors which will lead to poor compression performance.